package ec.edu.ucacue.siop.proceso.calculoBorrar;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.StringTokenizer;

import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

public class LectorHojaExcelCalidad {

	private List<Cont24horas> listaFila;
	private String error;

	public List<Cont24horas> getListaFila() {
		return listaFila;
	}

	public void setListaFila(List<Cont24horas> listaFila) {
		this.listaFila = listaFila;
	}

	public String getError() {
		return error;
	}

	public void setError(String error) {
		this.error = error;
	}
	
	public boolean leer(String archivo, int filaInicio, int filaFinal, int colInicio, int colFinal) {
		File arch = new File(archivo); 
		listaFila =  new ArrayList<Cont24horas>();
		int posFecha = archivo.indexOf("2014");
		String nomFecha = archivo.substring(posFecha, posFecha+10);
		System.out.println(nomFecha);
		StringTokenizer tokenFecha = new StringTokenizer(nomFecha,"-");
		int year = Integer.parseInt(tokenFecha.nextToken());
		int mes = Integer.parseInt(tokenFecha.nextToken()) -1;
		int dia = Integer.parseInt(tokenFecha.nextToken());
		try {
			Workbook hojaExcel = Workbook.getWorkbook(arch);
			Sheet hoja = hojaExcel.getSheet("Reporte Diario");
			for(int i=filaInicio-1; i<filaFinal && i<hoja.getRows(); i++) {
				Cont24horas fila = new Cont24horas();
				int hora = 0;
				for(int j=colInicio-1; j<colFinal && j<hoja.getColumns(); j++) {
					String lectura = hoja.getCell(j, i).getContents();
					ContDatos contedatos = new ContDatos();
					Calendar fecha = Calendar.getInstance();
					fecha.set(year, mes, dia, hora, 0);
					contedatos.setFecha(fecha);
					try{
						lectura = lectura.replace(",", ".");
						contedatos.setValor(Float.parseFloat(lectura));
						fila.getContenido().add(contedatos);
						}
					catch(NumberFormatException ex){
					}
					
				}
				listaFila.add(fila);
			}
		} catch (BiffException e) {
			error = "excepcion de lectura";
			e.printStackTrace();
			return false;
		} catch (IOException e) {
			error = "entrada salida erronea";
			e.printStackTrace();
			return false;
		}
		
		return true;
		
	}
	
	
}
